home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / kowin / util / timer11s.lzh / dateget.s < prev    next >
Text File  |  1991-08-05  |  3KB  |  182 lines

  1. *
  2. *    日付/時間ライブラリ 曜日なし
  3. *
  4. *            1990 11/11 by 小笠原博之
  5. *                      SPS0783 COR.
  6. *
  7.  
  8.         include    iocscall.mac
  9.         include    doscall.mac
  10.  
  11.         .xdef    _date_get
  12.         .xdef    _time_get
  13.         .xdef    _date_get2
  14.         .xdef    _time_get2
  15.  
  16.         .xdef    _alarmflag
  17.         .xdef    _timerflag
  18.         .xdef    _signalflag
  19.         .xdef    _alarmtime
  20.         .xdef    _timertime
  21.         .xdef    _alarmevent
  22.         .xdef    _sigmode
  23.         .xdef    _alm
  24.  
  25.         .text
  26.  
  27. *////////////////////////////////////////////////////////
  28. *
  29. *    void date_get( char *buf, int mode );
  30. *
  31.     if 1
  32. _date_get:
  33.         IOCS    _DATEGET
  34.         bra.s    dateget
  35. _date_get2:
  36.         IOCS    _DATEGET
  37.         cmp.l    datebuf(pc),d0
  38.         beq    exit_0
  39.         move.l    d0,datebuf
  40. dateget:
  41.         move.l    d0,d1
  42.         move.l    4(sp),a1
  43.         move.l    8(sp),a2
  44.         IOCS    _DATEBIN
  45.         move.l    d0,d1
  46.         rol.l    #4,d1
  47. *        moveq.l    #0,d2
  48. *        move.b    d1,d2        * day -> d2
  49.         and.b    #$f0,d1
  50.         move.l    a2,d0
  51.         or.b    d0,d1
  52.         ror.l    #4,d1
  53.         IOCS    _DATEASC
  54.         bra    exit_1
  55. datebuf:
  56.         dc.l    0
  57.     endif
  58. timebuf:
  59.         dc.l    0
  60. *////////////////////////////////////////////////////////
  61. *////////////////////////////////////////////////////////
  62. *
  63. *    void time_get( char *buf );
  64. *
  65. _time_get:
  66.         IOCS    _TIMEGET
  67.         bra.s    timeget
  68. _time_get2:
  69.         IOCS    _TIMEGET
  70.         cmp.l    timebuf(pc),d0
  71.         beq    exit_0
  72. timeget:
  73.         move.l    d0,timebuf
  74.         moveq.l    #1,d2
  75.         tst.l    _signalflag
  76.         beq    skipsig
  77.         cmp.w    #$5957,d0
  78.         bne.s    skip2
  79.         moveq.l    #2,d2
  80.         bra.s    skipsig
  81. skip2:
  82.         cmp.w    #$5958,d0
  83.         bne.s    skip3
  84.         moveq.l    #2,d2
  85.         bra.s    skipsig
  86. skip3:
  87.         cmp.w    #$5959,d0
  88.         bne.s    skip4
  89.         moveq.l    #2,d2
  90.         bra.s    skipsig
  91. skip4:
  92.         tst.w    d0
  93.         bne.s    skipsig
  94.         moveq.l    #4,d2
  95. skipsig:
  96.         move.l    d0,d1
  97.         move.l    4(sp),a1
  98.         move.l    a1,a2
  99.         IOCS    _TIMEBIN
  100.  
  101.         tst.l    _sigmode
  102.         beq.s    sigmusi
  103.         moveq.l    #1,d2
  104.         move.l    d0,d1
  105.         and.w    #$ff00,d1
  106.         bne.s    sigmusi
  107.         swap    d1
  108.         tst.b    d1
  109.         bne.s    nosig1
  110.         move.b    #12,d1
  111. nosig1:
  112.         cmp.b    #13,d1
  113.         bcs.s    nosig2
  114.         sub.b    #12,d1
  115. nosig2:
  116.         cmp.b    d1,d0
  117.         bcc.s    sigmusi
  118.         moveq.l    #5,d2
  119. sigmusi:
  120.         move.l    d0,d1
  121.         IOCS    _TIMEASC
  122.         cmp.b    #' ',(a2)
  123.         bne.s    jumpden
  124.         move.b    #'0',(a2)
  125. jumpden:
  126.         tst.l    _alarmflag
  127.         beq    chktimer2
  128.         move.l    _alarmtime(pc),d0
  129.         cmp.l    timebuf(pc),d0
  130.         bne.s    chktimer
  131. alarmdenden:
  132.         clr.l    _alarmevent
  133.         clr.l    _alm
  134.         bra.s    exit_3
  135. chktimer:
  136.         clr.b    d0
  137.         move.l    timebuf(pc),d1
  138.         clr.b    d1
  139.         cmp.l    d0,d1
  140.         bne.s    alarmdededen
  141.         tst.l    _alarmevent
  142.         bne    alarmdenden
  143.         bra    chktimer2
  144. alarmdededen:
  145.         move.b    #1,_alarmevent
  146. chktimer2:
  147.         tst.l    _timerflag
  148.         beq.s    exit_2
  149.         move.l    _timertime(pc),d0
  150.         cmp.l    timebuf(pc),d0
  151.         bne.s    exit_2
  152.         clr.l    _timerflag
  153.         move.l    #1,_alm
  154. exit_3:
  155.         moveq.l    #3,d0
  156.         rts
  157. exit_2:
  158.         move.l    d2,d0
  159.         rts
  160. exit_1:
  161.         moveq.l    #1,d0
  162.         rts
  163. exit_0:
  164.         moveq.l    #0,d0
  165.         rts
  166. _alarmflag:
  167.         dc.l    0
  168. _timerflag:
  169.         dc.l    0
  170. _signalflag:
  171.         dc.l    0
  172. _alarmtime:
  173.         dc.l    0
  174. _timertime:
  175.         dc.l    0
  176. _alarmevent:
  177.         dc.l    1
  178. _alm:
  179.         dc.l    0
  180. _sigmode:
  181.         dc.l    0
  182.